package com.ruoyi.common.utils;

public class VerifyUtils {
    /**
     * 正则表达式：校验8位存数字
     */
    public static final String REGEX_FIGURE = "^[0-9]{1,8}$";

    /**
     * 判断是否为手机号
     *
     * @param mobileNums
     * @return
     */
    public static boolean isMobileNO(String mobileNums) {
        /**
         * 判断字符串是否符合手机号码格式
         * 移动号段:   134 135 136 137 138 139 147 148 150 151 152 157 158 159  165 172 178 182 183 184 187 188 198
         * 联通号段:   130 131 132 145 146 155 156 166 170 171 175 176 185 186
         * 电信号段:   133 149 153 170 173 174 177 180 181 189  191  199 190
         * 虚拟运营商: 170
         *
         * 手机号前两位就是13、14、15、16、17、18、19，后面的都不确定，可以这样设置正则表达式：String telRegex = "^((13)|(14)|(15)|(16)|(17)|(18)|(19))\\d{9}$";
         *  后面的都不确定: String telRegex = "^(1)\\d{10}$";
         *
         * @param str
         * @return 待检测的字符串
         */
        // "[1]"代表下一位为数字可以是几，"[0-9]"代表可以为0-9中的一个，"[5,7,9]"表示可以是5,7,9中的任意一位,[^4]表示除4以外的任何一个,\\d{8}"代表后面是可以是0～9的数字，有8位。
        String telRegex = "^((13[0-9])|(14[5,6,7,9])|(15[^4])|(16[5,6])|(17[0-9])|(18[0-9])|(19[1,8,9,0]))\\d{8}$";
        if (StringUtils.isEmpty(mobileNums)) {
            return false;
        } else {
            return mobileNums.matches(telRegex);
        }
    }

    public static void main(String[] args) {
        System.out.println(isMobileNO("19065028846"));
//        System.out.println(isFigure("12345678q"));

    }

}
